Users of physical or virtual machines commonly install software packages, including package updates, to those machines. The software packages can contain a set of related files chosen to perform a given application or task, such as, for example, a group of software applications, drivers, and/or other resources used to install and use messaging or media applications. In instances, a software package can contain application software, operating system software, drivers, patches, and/or other software components grouped as a logical set.
Software package managers exist to help a user initiate and perform software package updates, such as, for example, the “yum” (Yellowdog update manager) package update manager available from Red Hat, Inc., Raleigh, N.C., and others. In general, available software package managers are configured to interact with the set of installed packages on a client and with one or more software package repositories and associated package servers, to directly connect to those databases and download available package updates.
The process of initiating software package updates can involve, however, the risk or possibility of software-related faults, instabilities, bugs, or other errors or irregular conditions. Some of those potential faults or irregular conditions can be the result of a target machine that was not in the correct or expected machine state to receive a package update or updates. For instance, a client machine scheduled to receive a package update may not contain the correct version, or correct number, of previous packages needed to support that update. Irregularities in the package complement can in one regard be caused, for example, by users in the managed network performing unauthorized package updates to client machines, resulting in an unexpected total package sum on those machines. The client machine in addition or instead might be missing one or more component files that are necessary to the operation of the existing package complement. Missing files from a package complement can for instance can be due to further causes hard drive corruption, malicious software intrusions, or other issues. Beyond issues of that nature, an administrator in a managed network may also not have an up-to-date or complete inventory of the machines on the network that represent identical images of desired configurations, and therefore be ready to receive a collective package update, or other collective maintenance.
Existing package update managers may contain facilities to interrogate the state of client machines in a network, but typically need to extract package name, version, and/or other attributes from client machines to attempt to identify the installed package complements on managed machines and reconcile package sets, group related machines together, and/or perform other package-related maintenance and administration. It may be desirable to provide systems and methods for generating a machine state verification using a number of installed package objects, in which a package server or other management platform can interrogate client machines using a comparatively lightweight census or reporting mechanism, but which is nevertheless sensitive to changes in target machine state.